from Cliente import*
from Processo import*

#Lista Geral onde sera armazenado todos os Clientes
Lista_Clientes = []

class RepositorioCliente:

    def __init__(self, pessoa, processo):
        self.pessoa = pessoa
        self.processo = processo
        self.lista_Pessoas = []

    def Add_Cliente(self):
        """Funcao Usada no arquivo window_Registro"""
        #Adicionar dados da Pessoa Lista_Pessoas
        
            #Adicionando dados pessoais do cliente
        self.lista_Pessoas.append(self.pessoa.getNomeCliente())
        self.lista_Pessoas.append(self.pessoa.getRG())
        self.lista_Pessoas.append(self.pessoa.getOrgaoE())
        self.lista_Pessoas.append(self.pessoa.get_CPF().getCpf())
        self.lista_Pessoas.append(self.pessoa.get_End().getLogradouro())
        self.lista_Pessoas.append(self.pessoa.get_End().getNumero())
        self.lista_Pessoas.append(self.pessoa.get_End().getCEP())
        self.lista_Pessoas.append(self.pessoa.get_End().getComplemento())
        self.lista_Pessoas.append(self.pessoa.get_End().getCidade())
        self.lista_Pessoas.append(self.pessoa.get_End().getEstado())
        self.lista_Pessoas.append(self.pessoa.get_End().getBairro())
        self.lista_Pessoas.append(self.pessoa.get_End().getTelefone())
        self.lista_Pessoas.append(self.pessoa.get_End().getCelular())
        self.lista_Pessoas.append(self.pessoa.getEmail())
    
    def Add_Processo(self):
        """Funcao Usada do arquivo window_Registro"""

            #Adicionando dados do Processo
        self.lista_Pessoas.append(self.processo.getNumeroProcesso())
        self.lista_Pessoas.append(self.processo.getTipo())
        self.lista_Pessoas.append(self.processo.getCidadeProcesso())
        self.lista_Pessoas.append(self.processo.getVara())
        self.lista_Pessoas.append(self.processo.getJuiz())
        self.lista_Pessoas.append(self.processo.getFase())


    def Add_ParteContraria(self):
        """Funcao Usada do arquivo window_Registro"""

            #Adicionando dados da Parte Contraria
        self.lista_Pessoas.append(self.processo.getParte().getNomeParte())
        self.lista_Pessoas.append(self.processo.getParte().get_CPFCNPJ().getCpf())
        self.lista_Pessoas.append(self.processo.getParte().get_Endereco().getLogradouro())
        self.lista_Pessoas.append(self.processo.getParte().get_Endereco().getNumero())
        self.lista_Pessoas.append(self.processo.getParte().get_Endereco().getCEP())
        self.lista_Pessoas.append(self.processo.getParte().get_Endereco().getComplemento())
        self.lista_Pessoas.append(self.processo.getParte().get_Endereco().getCidade())
        self.lista_Pessoas.append(self.processo.getParte().get_Endereco().getEstado())
        self.lista_Pessoas.append(self.processo.getParte().get_Endereco().getBairro()) 
        self.lista_Pessoas.append(self.processo.getParte().get_Endereco().getTelefone())
        self.lista_Pessoas.append(self.processo.getParte().get_Endereco().getCelular())  

    
    def Add_Advogado(self):
        """Funcao Usada do arquivo window_Registro"""

            #Adicionando dados do Advogado
        self.lista_Pessoas.append(self.processo.getAdvogado().getNomeAdvogado())
        self.lista_Pessoas.append(self.processo.getAdvogado().getOAB())
        self.lista_Pessoas.append(self.processo.getAdvogado().get_Endereco().getLogradouro())
        self.lista_Pessoas.append(self.processo.getAdvogado().get_Endereco().getNumero())
        self.lista_Pessoas.append(self.processo.getAdvogado().get_Endereco().getCEP())
        self.lista_Pessoas.append(self.processo.getAdvogado().get_Endereco().getComplemento())
        self.lista_Pessoas.append(self.processo.getAdvogado().get_Endereco().getCidade())
        self.lista_Pessoas.append(self.processo.getAdvogado().get_Endereco().getEstado())
        self.lista_Pessoas.append(self.processo.getAdvogado().get_Endereco().getBairro())
        self.lista_Pessoas.append(self.processo.getAdvogado().get_Endereco().getTelefone())
        self.lista_Pessoas.append(self.processo.getAdvogado().get_Endereco().getCelular())

    #Funcao para add na Lista Geral Clientes
    def Add_ListaClientes(self):
        Lista_Clientes.append(self.lista_Pessoas)
    
    def Retornar_ListaClientes(self):
        return Lista_Clientes 

    #Colocar no Banco de Dados
    def Colocar_BancoDados(self,lista):
        """Funcao Usada do arquivo window_Registro"""

        #Limpar Arquivo 
        arquivo = open('C:\Users\Nicollas\Desktop\Advocatus\Codigos\Banco de Dados\clientes.txt','w')
        arquivo.write("")
        arquivo.close()

        #Adicionar Lista_Clientes ao Arquivo

        #Banco De Dados Arquivo - Primario
        for i in lista:
            Adicionar=open('C:\Users\Nicollas\Desktop\Advocatus\Codigos\Banco de Dados\cadrasto.txt','a+')
            Adicionar.write("DADOS PESSOAIS DO CLIENTE" + "\n"
                            "Nome: "+i[0] + "\n"
                            "RG: " + i[1] + "\n"
                            "OrgaoE: " + i[2] + '\n'
                            "CPF: " + i[3] + "\n"
                            "Rua: " +(i[4]) + "\n"
                            "Numero: " +i[5] + "\n"
                            "Complemento: " +i[6] + "\n"
                            "Cidade: " +i[7] + "\n"
                            "Bairro: " +i[8] + "\n"
                            "Estado: " +i[9] + "\n"
                            "Cep: " +i[10] + "\n"
                            "Telefone Fixo: " +i[11] + "\n"
                            "Celular: " +i[12] + "\n"
                            "Email: " +i[13] + "\n"
                            +"\n" +"-"*30+ "\n"
                            "Dados Processo" + "\n"
                            "Numero Processo: " +i[14] + "\n"
                            "Tipo: " +i[15] + "\n"
                            "Cidade Processo: " +i[16] + "\n"
                            "Vara: " +i[17] + "\n"
                            "Juiz: " +i[18] + "\n"
                            "Fase: " +i[19] + "\n"
                            +"\n" +"-"*30+ "\n"
                            "Parte Contraria" + "\n"
                            "Nome Parte: " +i[20] + "\n"
                            "CPF: " + i[21] + "\n"
                            "Rua: " +(i[22]) + "\n"
                            "Numero: " +i[23] + "\n"
                            "Complemento: " +i[24] + "\n"
                            "Cidade: " +i[25] + "\n"
                            "Bairro: " +i[26] + "\n"
                            "Estado: " +i[27] + "\n"
                            "Cep: " +i[28] + "\n"
                            "Telefone Fixo : " +i[29] + "\n"
                            "Celular : " +i[30] + "\n"
                            +"\n" +"-"*30+ "\n"
                            "Advogado Parte" + "\n"
                            "Nome Advogado: " +i[31] + "\n"
                            "OAB: " + i[32] + "\n"
                            "Rua: " +(i[33]) + "\n"
                            "Numero: " +i[34] + "\n"
                            "Complemento: " +i[35] + "\n"
                            "Cidade: " +i[36] + "\n"
                            "Bairro: " +i[37] + "\n"
                            "Estado: " +i[38] + "\n"
                            "Cep: " +i[39] + "\n"
                            "Telefone Fixo : " +i[40] + "\n"
                            "Celular : " +i[41] + "\n") 
            Adicionar.close()
            
            #Banco De Dados Arquivo - Secundario
            Adicionar2=open('C:\Users\Nicollas\Desktop\Advocatus\Codigos\Banco de Dados\clientes.txt','a+')
            Adicionar2.write(i[0] +" | "+ i[1] +' | '+ i[2] + ' | '+ i[3] + ' | '+ i[4] + ' | '+
                i[5] +" | "+ i[6] +' | '+ i[7] + ' | '+ i[8] + ' | '+ i[9] + ' | '+
                i[10] +" | "+ i[11] +' | '+ i[12] + ' | '+ i[13] + ' | '+ i[14] + ' | '+
                i[15] +" | "+ i[16] +' | '+ i[17] + ' | '+ i[18] + ' | '+ i[19] + ' | '+
                i[20] +" | "+ i[21] +' | '+ i[22] + ' | '+ i[23] + ' | '+ i[24] + ' | '+
                i[25] +" | "+ i[26] +' | '+ i[27] + ' | '+ i[28] + ' | '+ i[29] + ' | '+
                i[30] +" | "+ i[31] +' | '+ i[32] + ' | '+ i[33] + ' | '+ i[34] + ' | '+
                i[35] +" | "+ i[36] +' | '+ i[37] + ' | '+ i[38] + ' | '+ i[39] + ' | '+
                i[40] +" | "+ i[41] + "\n") 
            Adicionar2.close()

    #Carregar Lista do Banco de dados e add na Lista Geral Clientes
    def Carregar_ListaClientes(self):       
        
        arquivo = open('C:\Users\Nicollas\Desktop\Advocatus\Codigos\Banco de Dados\clientes.txt','r+')
        Cliente_Arquivo = arquivo.readlines()
        arquivo.close()
        
        for i in Cliente_Arquivo:
            x=i.replace("\n","")
            y=x.split(" | ")
            Lista_Clientes.append(y)

    def CriaDicionario(self,lista):
        """Funcao Usada do arquivo window_ListarProcessos"""
        dic={}
        for i, x in enumerate(lista):
            dic[i] = (x[0],x[16],x[17],x[14],x[19])
        return dic

    def Pesquisar_Nome(self,nome,lista):
        """Funcao Usada do arquivo window_Pesquisar"""

        Resultado = []
        for cont in lista:
            if nome==cont[0]:
                Resultado.append(cont)
        return Resultado

    def Pesquisar_CPF(self,cpf,lista):
        """Funcao Usada do arquivo window_Pesquisar"""

        Resultado = []
        for cont in lista:
            if cpf==cont[3]:
                Resultado.append(cont)
        return Resultado

    def Pesquisar_Processo(self,processo,lista):
        """Funcao Usada do arquivo window_Pesquisar"""
        
        Resultado = []
        for cont in lista:
            if processo==cont[14]:
                Resultado.append(cont)
        return Resultado
    
            

            


 